home *** CD-ROM | disk | FTP | other *** search
/ Delphi Magazine Collection 2001 / Delphi Magazine Collection 20001 (2001).iso / DISKS / Issue56 / DragDrop / VCLDropU.PAS < prev   
Encoding:
Pascal/Delphi Source File  |  2000-02-09  |  2.4 KB  |  94 lines

  1. unit VCLDropU;
  2.  
  3. {$ifdef Ver80} { Delphi 1.0x }
  4.   {$define DelphiLessThan4}
  5. {$endif}
  6. {$ifdef Ver90} { Delphi 2.0x }
  7.   {$define DelphiLessThan4}
  8. {$endif}
  9. {$ifdef Ver93} { C++ Builder 1.0x }
  10.   {$define DelphiLessThan4}
  11. {$endif}
  12. {$ifdef Ver100} { Delphi 3.0x }
  13.   {$define DelphiLessThan4}
  14. {$endif}
  15. {$ifdef Ver110} { C++ Builder 3.0x }
  16.   {$define DelphiLessThan4}
  17. {$endif}
  18.  
  19. interface
  20.  
  21. uses
  22.   WinProcs, WinTypes, Messages, SysUtils, Classes, Graphics, Controls, Forms,
  23.   Dialogs, FileCtrl, StdCtrls, ExtCtrls;
  24.  
  25. type
  26.   TForm1 = class(TForm)
  27.     DirLabel: TLabel;
  28.     FileEdit: TEdit;
  29.     FileList: TFileListBox;
  30.     DirList: TDirectoryListBox;
  31.     DriveCombo: TDriveComboBox;
  32.     FilterCombo: TFilterComboBox;
  33.     Bevel1: TBevel;
  34.     Image: TImage;
  35.     procedure FormCreate(Sender: TObject);
  36.     procedure FileListDblClick(Sender: TObject);
  37.     procedure FileListMouseDown(Sender: TObject; Button: TMouseButton;
  38.       Shift: TShiftState; X, Y: Integer);
  39.     procedure ImageDragOver(Sender, Source: TObject; X, Y: Integer;
  40.       State: TDragState; var Accept: Boolean);
  41.     procedure ImageDragDrop(Sender, Source: TObject; X, Y: Integer);
  42.   private
  43.     { Private declarations }
  44.   public
  45.     { Public declarations }
  46.   end;
  47.  
  48. var
  49.   Form1: TForm1;
  50.  
  51. implementation
  52.  
  53. {$R *.DFM}
  54.  
  55. procedure TForm1.FormCreate(Sender: TObject);
  56. begin
  57. {$ifndef DelphiLessThan4}
  58.   Image.Anchors := [akLeft, akTop, akRight, akBottom];
  59.   Bevel1.Anchors := [akLeft, akTop, akRight, akBottom];
  60. {$endif}
  61. end;
  62.  
  63. procedure TForm1.FileListDblClick(Sender: TObject);
  64. begin
  65.   Image.Picture.LoadFromFile(FileList.FileName)
  66. end;
  67.  
  68. procedure TForm1.FileListMouseDown(Sender: TObject; Button: TMouseButton;
  69.   Shift: TShiftState; X, Y: Integer);
  70. begin
  71.   if (Sender is TCustomListBox) and (Button = mbLeft) then
  72.     with TCustomListBox(Sender) do
  73.       if ItemAtPos(Point(X, Y), True) <> -1 then
  74.         BeginDrag(False)
  75. end;
  76.  
  77. procedure TForm1.ImageDragOver(Sender, Source: TObject; X, Y: Integer;
  78.   State: TDragState; var Accept: Boolean);
  79. begin
  80.   Accept := Source = FileList
  81. end;
  82.  
  83. procedure TForm1.ImageDragDrop(Sender, Source: TObject; X, Y: Integer);
  84. begin
  85. {$ifndef Windows} { Delphi 1 cannot handle this syntax }
  86.   { If FileList has an OnDblClick event handler... }
  87.   if Assigned(FileList.OnDblClick) then
  88. {$endif}
  89.     { ... invoke it }
  90.     FileList.OnDblClick(FileList)
  91. end;
  92.  
  93. end.
  94.